package com.sse.sensor;

import com.sse.sensor.TipoSensor.TipoSensorEnum;
import com.sse.sensor.impl.SensorAntena;
import com.sse.sensor.impl.SensorHumo;
import com.sse.sensor.impl.SensorIngreso;
import com.sse.sensor.impl.SensorMovimiento;
import com.sse.sensor.impl.SensorPuerta;
import com.sse.sensor.impl.SensorVentana;

/**
 * Clase que se encarga de la generacion de las clases de sensores.
 * 
 * @author Paul
 * 
 */
public class SensorFactory {

	/**
	 * Metodo tipo fabrica, instancia un nuevo sensor con base en una enumeracion.
	 * @param tipoSensorEnum
	 * @return
	 */
	public static ISensor crearSensor(TipoSensorEnum tipoSensorEnum) {

		ISensor sensor = null;

		switch (tipoSensorEnum) {
		case ANTENA: {
			sensor = new SensorAntena();
			break;
		}

		case HUMO: {
			sensor = new SensorHumo();
			break;
		}

		case INGRESO: {
			sensor = new SensorIngreso();
			break;
		}
		case MOVIMIENTO: {
			sensor = new SensorMovimiento();
			break;
		}

		case PUERTA: {
			sensor = new SensorPuerta();
			break;
		}

		case VENTANA: {
			sensor = new SensorVentana();
			break;
		}
		default:
			break;
		}		
		return sensor;
	}

}
